Typical interactive applications provide for operating on a fixed set of file types where the file contains a single type of content. Increasingly, applications require the use of files that contain many different kinds of interleaved content or code in different programming languages. Moreover, the frequency with which new types of content and programming languages become available is increasing rapidly. These factors require a new kind of interactive application that can be dynamically configured.